GVKun编程网logo

Java-元素MyElement在点(x,y)不可点击...其他元素将获得点击(java点是否在圆内)

9

如果您想了解Java-元素MyElement在点的相关知识,那么本文是一篇不可错过的文章,我们将对x,y不可点击...其他元素将获得点击进行全面详尽的解释,并且为您提供关于c#–SeleniumWai

如果您想了解Java-元素MyElement在点的相关知识,那么本文是一篇不可错过的文章,我们将对x,y不可点击...其他元素将获得点击进行全面详尽的解释,并且为您提供关于c# – Selenium Wait不等待Element可点击、ElementClickInterceptedException:消息:元素点击被拦截其他元素会收到点击:Selenium Python、flutter - 只有在点击其他元素时,UI更改才会生效、html – 伪元素不可点击的有价值的信息。

本文目录一览:

Java-元素MyElement在点(x,y)不可点击...其他元素将获得点击(java点是否在圆内)

Java-元素MyElement在点(x,y)不可点击...其他元素将获得点击(java点是否在圆内)

我正在尝试使用基于selenium的Katalon Studio进行一些测试。在我的测试之一中,我必须在文本区域内编写。问题是我得到以下错误:

...Element MyElement is not clickable at point (x, y)... Other element would receive the click...

实际上,我的元素放置在其他可能隐藏它的diva里面,但是如何使click事件击中我的textarea?

答案1

小编典典

Element ... is not clickable at point (x, y). Other element would receive the click"可能是由不同因素引起的。你可以通过以下任一过程解决它们:

由于存在JavaScript或AJAX调用而无法单击元素
尝试使用Actions Class:

WebElement element = driver.findElement(By.id("id1"));Actions actions = new Actions(driver);actions.moveToElement(element).click().build().perform();
  1. 由于元素不在视口中,因此无法单击
    尝试用于JavascriptExecutor将元素带入视口中:
JavascriptExecutor jse1 = (JavascriptExecutor)driver;jse1.executeScript("scroll(250, 0)"); // if the element is on top.jse1.executeScript("scroll(0, 250)"); // if the element is at bottom.

要么

WebElement myelement = driver.findElement(By.id("id1"));JavascriptExecutor jse2 = (JavascriptExecutor)driver;jse2.executeScript("arguments[0].scrollIntoView()", myelement); 
  1. 在元素可单击之前,页面正在刷新。
    在这种情况下诱发一些wait

  2. 元素存在于DOM中,但不可单击。
    在这种情况下ExplicitWait,请为元素添加一些可单击的元素。

WebDriverWait wait2 = new WebDriverWait(driver, 10);wait2.until(ExpectedConditions.elementToBeClickable(By.id("id1")));
  1. 元素存在但具有临时覆盖。
    在这种情况下,ExplicitWait使用 ExpectedConditions设置invisibilityOfElementLocated为会使叠加层不可见。
WebDriverWait wait3 = new WebDriverWait(driver, 10);wait3.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath("ele_to_inv")));
  1. 存在元素,但具有永久覆盖。
    用于JavascriptExecutor直接在元素上发送点击。
WebElement ele = driver.findElement(By.xpath("element_xpath"));JavascriptExecutor executor = (JavascriptExecutor)driver;executor.executeScript("arguments[0].click();", ele);

c# – Selenium Wait不等待Element可点击

c# – Selenium Wait不等待Element可点击

我有一个动态加载的页面,包含一个按钮.我正在尝试等待按钮可以使用C#绑定点击selenium.我有以下代码:

webdriverwait wait = new webdriverwait(Driver.Instance,TimeSpan.FromSeconds(30));
        wait.Until(ExpectedConditions.ElementToBeClickable(By.Id("addinspectionButton")));

        var button = Driver.Instance.FindElement(By.Id("addinspectionButton"));
        button.Click();

这不起作用. click事件永远不会被触发. selenium脚本不会抛出异常,提示ID为“addinspectionButton”的元素不存在.它只是无法点击它.如果我添加一个Thread.Sleep(3000)在wait语句和我得到按钮元素句柄的行之间它可以工作.

我在这里没有正确使用ExpectedConditions.ElementToBeClickable吗?

解决方法

事实证明,在将按钮动态添加到页面后,事件被绑定到按钮.所以按钮被点击但没有发生任何事情.放置在代码中的睡眠线程只是给客户端事件时间绑定.

我的解决方案是单击按钮,检查预期结果,然后重复,如果预期结果尚未在DOM中.

由于预期的结果是打开一个表单,我像这样轮询DOM:

button.Click();//click button to make form open
        var forms = Driver.Instance.FindElements(By.Id("inspectionDetailsForm"));//query the DOM for the form
        var times = 0;//keep tabs on how many times button has been clicked
        while(forms.Count < 1 && times < 100)//if the form hasn't loaded yet reclick the button and check for the form in the DOM,only try 100 times
        {

            button.Click();//reclick the button
            forms = Driver.Instance.FindElements(By.Id("inspectionDetailsForm"));//requery the DOM for the form
            times++;// keep track of times clicked
        }

ElementClickInterceptedException:消息:元素点击被拦截其他元素会收到点击:Selenium Python

ElementClickInterceptedException:消息:元素点击被拦截其他元素会收到点击:Selenium Python

如何解决ElementClickInterceptedException:消息:元素点击被拦截其他元素会收到点击:Selenium Python?

我已经看到有关此错误的其他问题,但我的情况是在我的程序中,另一个元素应该收到点击。详细说明:webdriver 正在滚动谷歌搜索,它必须点击它找到的每个网站,但程序阻止了它。我怎样才能让它不搜索它点击的上一个网站?

这就是功能。程序正在循环它,在第一个循环之后它向下滚动并出现错误:

def get_info():
browser.switch_to.window(browser.window_handles[2])
description = webdriverwait(browser,10).until(
    EC.presence_of_element_located((By.TAG_NAME,"h3"))
).text

site = webdriverwait(browser,"cite"))
)
site.click()

url=browser.current_url
#removes the https:// and the / of the url
#to get just the domain of the website
try:
    link=url.split("https://")
    link1=link[1].split("/")
    link2=link1[0]
    link3=link2.split("www.")
    real_link=link3[1]

except IndexError:
    link=url.split("https://")
    link1=link[1].split("/")
    real_link=link1[0]

time.sleep(3)
screenshot=browser.save_screenshot("photos/"+"(" + real_link + ")" + ".png")
global content
content=[]
content.append(real_link)
content.append(description)
print(content)
browser.back()
time.sleep(5)
browser.execute_script("window.scrollBy(0,400)","")
time.sleep(5)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

flutter - 只有在点击其他元素时,UI更改才会生效

flutter - 只有在点击其他元素时,UI更改才会生效

我在屏幕下方,该屏幕显示了用户点previous/lastcurrent月份的历史记录。将point有2个指标,它们是Text1Text2

我的屏幕如何工作:

  1. 默认数据将显示current月份。
  2. 如果我点击last month按钮,它将更改UI以显示上个月的数据。
  3. 如果我点击Show/Hide Text 1,首先它将隐藏的所有外观Text1。如果我再次轻按,则所有内容Text1都会再次出现。
  4. 对于Show/Hide Text2相同点(3)。

问题 :

如果我点击show/hide按钮Text1Text2 ,则只有在我点击last monthcurrent month按钮(显示/隐藏Text1Text2的元素)后才会生效。所以show/hide按钮的更改效果不是立即发生的,我需要点击另一个元素才能生效。

The Code :

MainHistoryScreen.dart :

class MainHistoryScreen extends StatefulWidget {
  @override
  _MainHistoryScreenState createState() {
    return new _MainHistoryScreenState();
  } 
}

class _MainHistoryScreenState extends State<MainHistoryScreen> {

  MainHistoryBloc MainHistoryBloc;
  int selectedValue = 1;

  //you don't have to declare false as bool is initialised false by default
  bool showText1 = false;
  bool showText2 = false;
  bool showText3 = false;

  @override
    void initState() {
      super.initState();
      MainHistoryBloc = MainHistoryBloc();
      MainHistoryBloc.getContents(context);
  }

  @override
    void dispose() {
      super.dispose();
      MainHistoryBloc.dispose();
    }

  getNumberFormat(String str) {
    final f = new NumberFormat("#.###");
    return str.replaceAll(f.symbols.GROUP_SEP,'');
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.white,appBar: AppBar(
        backgroundColor: Pigment.fromString(UIData.primaryColor),elevation: 0,centerTitle: true,title: Text(translations.text("main_history").toUpperCase()),leading: Row(
          crossAxisAlignment: CrossAxisAlignment.stretch,children: <Widget>[
            Expanded(
              child: InkWell(
                child: SizedBox(child: Image.asset("assets/images/arrow-back.png"),height: 10,width: 1,),onTap: () => Navigator.of(context).pop(),)
            ),],body: ListView(
        primary: true,scrollDirection: Axis.vertical,children: <Widget>[
          Container(
            height: MediaQuery.of(context).size.height * 0.30,padding: EdgeInsets.all(16.0),width: MediaQuery.of(context).size.width,decoration: new BoxDecoration(
              image: new DecorationImage(
                image: new AssetImage("assets/images/account/background.png"),fit: BoxFit.cover,child: Center(
              child: Column(
                crossAxisAlignment: CrossAxisAlignment.center,mainAxisAlignment: MainAxisAlignment.center,children: <Widget>[
                  SizedBox(
                    child: CircleAvatar(
                      backgroundImage: NetworkImage(UIData.defaultUserIconUrl),height: 75,width: 75,SizedBox(height: 20,StreamBuilder(
                    stream: MainHistoryBloc.userStream,builder: (BuildContext ctx,AsyncSnapshot<User> snapshot){
                      if(!snapshot.hasData) {
                        return Text(translations.text("member_since") + ": -",style: TextStyle(color: Colors.white));
                      }
                      return Text(translations.text("member_since") + ": " + new DateFormat("d MMMM y").format(DateTime.parse(snapshot.data.created_at.toString())),style: TextStyle(color: Colors.white));
                    }
                  )
                ]
              ),Padding(
            padding: EdgeInsets.all(8),child: Column(
              mainAxisAlignment: MainAxisAlignment.start,crossAxisAlignment: CrossAxisAlignment.start,children: <Widget>[
                Divider(height: 2,color: Pigment.fromString(UIData.primaryColor),SizedBox(height: 10,StreamBuilder(
                  stream: MainHistoryBloc.totalmainHistoryStream,AsyncSnapshot<UserDetail> snapshot){
                    var point = snapshot.hasData ? this.getNumberFormat(snapshot.data.point.toString()) : "0";
                    var main = snapshot.hasData ? this.getNumberFormat(snapshot.data.main.toString()) : "0";
                    var sadaqah = snapshot.hasData ? this.getNumberFormat(snapshot.data.sadaqah.toString()) : "0";
                    return Container(
                      child: Row(
                        children: <Widget>[
                          Expanded(
                            child: mainMenuWidget(
                              image: "assets/images/main/star.png",title: translations.text("total_points"),subtitle: point,onTap: () {

                                //Show/Hide Text1
                                showText1 = !showText1;
                                print ("Text 1 = "+showText1.toString());
                              }
                            )
                          ),Expanded(
                            child: mainMenuWidget(
                              image: "assets/images/home/my-main.png",title: translations.text("total_main"),subtitle: main,onTap: () {

                                //Show/Hide Text2
                                showText2 = !showText2;
                              }
                            )
                          ),Expanded(
                            child: mainMenuWidget(
                              image: "assets/images/home/more-sadaqah.png",title: translations.text("total_sadaqah"),subtitle: sadaqah,onTap: () {

                                //Show/Hide Text 3  
                                showText3 = !showText3;
                              },)
                          )
                        ],)
                    );
                  }
                ),Divider(height: 2,Padding(
                  padding: EdgeInsets.only(left: 26,top: 12,bottom: 12),child: Text(translations.text("histories"),textAlign: TextAlign.left,style: TextStyle(fontSize: 16),SizedBox(
                  width: 1000,child: Padding(
                    padding: EdgeInsets.all(8),child: StreamBuilder(
                      stream: MainHistoryBloc.tabSelectedValueStream,builder: (context,snapshot) {
                        return CupertinoSegmentedControl<int>(
                          selectedColor: Pigment.fromString(UIData.primaryColor),borderColor: Pigment.fromString(UIData.primaryColor),children:  <int,Widget>{
                            0: Text(translations.text("last_month").toString()),1: Text(translations.text("this_month").toString()),},onValueChanged: (int newValue) {
                            MainHistoryBloc.onChangeTab(newValue);
                          },groupValue: snapshot.data,);
                      }
                    ),)
                ),)
          ),historiesWidget(),)
    );
  }

  Widget historiesWidget() {
    return StreamBuilder(
      stream: MainHistoryBloc.mainHistoriesStream,AsyncSnapshot<List<mainHistory>> snapshot) {
        if (snapshot.hasError) return new Text('Error: ${snapshot.error}');
        if (!snapshot.hasData) return Center(child: ActivityIndicatorWidget());
        if (snapshot.data.length <= 0) return Center(child: Text(translations.text("empty_data")));

        return ListView.builder(
          shrinkWrap: true,itemCount: snapshot.data.length,primary: false,physics: const NeverScrollableScrollPhysics(),itemBuilder: (ctx,i) {
            return ActivityHistoryCardWidget(mainHistory: snapshot.data[i],showText1: showText1,showText2: showText2,showText3: showText3,);
          }
        );
      }
    );
  }
}

Below are list card widget to show the data.

ActivityHistoryWidget.dart :

class ActivitHistoryCardWidget extends StatefulWidget {

  DActivitHistory dActivitHistory;
  bool showText1;
  bool showText2;
  bool showText3;

  ActivitHistoryCardWidget({this.dActivitHistory,this.showText1,this.showText2,this.showText3});

  @override
  _ActivitHistoryCardWidget createState() {
    return new _ActivitHistoryCardWidget(dActivitHistory: dActivitHistory);
  }


}

class _ActivitHistoryCardWidget extends State<ActivitHistoryCardWidget> {

  DActivitHistory dActivitHistory;
  bool showText1;
  bool showText2;
  bool showText3;

  _ActivitHistoryCardWidget({this.dActivitHistory,this.showText3});

  @override
  Widget build(BuildContext context) {
    return Column(
      children: <Widget>[
        Container(
          child: Row(
            mainAxisAlignment: MainAxisAlignment.start,children: <Widget>[
              Container(
                width: 100,alignment: Alignment.topCenter,child: Text(new DateFormat("d").format(DateTime.parse(dActivitHistory.dActivitDate)),textAlign: TextAlign.center,style: TextStyle(
                    fontSize: 50,Column(
                mainAxisAlignment: MainAxisAlignment.start,children: <Widget>[
                  SizedBox(height: 10,Text(new DateFormat("EEEE").format(DateTime.parse(dActivitHistory.dActivitDate)),style: TextStyle(
                      fontSize: 14
                    ),SizedBox(height: 5,Text(new DateFormat("MMMM y").format(DateTime.parse(dActivitHistory.dActivitDate)),style: TextStyle(
                      fontSize: 16,fontWeight: FontWeight.w600
                    ),//Point Widget
                  widget.showText1 ? Container() : this.PointHistory(context),//Activit Widget
                  widget.showText2 ? Container() : this.ActivitHistory(context),//Give Widget
                  widget.showText3 ? Container() : this.GiveHistory(context),)
            ],);
  }


  Widget PointHistory(context) {
    return Column(
      children: <Widget>[
        SizedBox(height: 10,Row(
          children: <Widget>[
            SizedBox(child: Image.asset("assets/images/Activit/star.png"),height: 20,width: 20,SizedBox(width: 10,Text(getNumberFormat(dActivitHistory.counter.toString()),style: TextStyle(
                  fontSize: 16,color: Pigment.fromString(UIData.primaryColor)
              ),);
  }

  Widget ActivitHistory(context) {
    return Column(
      children: <Widget>[
        SizedBox(height: 10,Row(
          children: <Widget>[
            SizedBox(child: Image.asset("assets/images/home/my-Activit.png"),Text(getNumberFormat(dActivitHistory.dActivitTotal.toString()),);
  }

  Widget GiveHistory(context) {
    return Column(
      children: <Widget>[
        SizedBox(height: 10,Row(
          children: <Widget>[
            SizedBox(child: Image.asset("assets/images/home/more-Give.png"),Text('Di Salurkan Sejumlah Rp '+getNumberFormat(dActivitHistory.GiveTotal.toString()+' ke Lembaga '+getFoundationName(dActivitHistory.foundationDonateId.toString()) ),);
  }

  getFoundationName(String str)
  {
    String returnName = '';
    switch (str) {
      case '1':
        returnName = 'A';
        break;
      case '2':
        returnName = 'B';
        break;
      case '3':
        returnName = 'C';
        break;
      case '4':
        returnName = 'D';
        break;
      case '5':
        returnName = 'E';
        break;
    }
    return returnName;
  }

  getNumberFormat(String str) {
    final f = new NumberFormat("#.###");
    return str.replaceAll(f.symbols.GROUP_SEP,'');
  }
}

Any Idea ?

Thanks In Advance…

html – 伪元素不可点击

html – 伪元素不可点击

我将箭头放置为:在可点击的瓷砖的伪元素之后.尽管将高度/宽度设置为0,它仍会产生无法点击的盲点.

代码在这里:http://cdpn.io/vpjCg

要查看问题,请将光标滚动到平铺链接上,然后滚动到右下角的字符上.

是否有CSS属性或其他解决方案将:after元素设置为鼠标光标不可见,以便整个区域可单击?

解决方法

伪元素属于他们的父母 – 如果他们的父母是可点击的(按钮,a)那么伪元素也是如此.与DOM元素类似,如果DOM元素绑定了click事件侦听器,则直接单击DOM元素或其上的伪元素时将触发它.

编辑

除了我的回答之外,您可以使用CSS属性指针 – 事件并将值设置为none,使您的点击“遍历”一个元素以触发底层元素.适用于所有现代浏览器(IE9及更高版本)https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events

今天关于Java-元素MyElement在点x,y不可点击...其他元素将获得点击的介绍到此结束,谢谢您的阅读,有关c# – Selenium Wait不等待Element可点击、ElementClickInterceptedException:消息:元素点击被拦截其他元素会收到点击:Selenium Python、flutter - 只有在点击其他元素时,UI更改才会生效、html – 伪元素不可点击等更多相关知识的信息可以在本站进行查询。

本文标签: