如果您想了解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点是否在圆内)
- c# – Selenium Wait不等待Element可点击
- ElementClickInterceptedException:消息:元素点击被拦截其他元素会收到点击:Selenium Python
- flutter - 只有在点击其他元素时,UI更改才会生效
- html – 伪元素不可点击
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();
- 由于元素不在视口中,因此无法单击
尝试用于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);
在元素可单击之前,页面正在刷新。
在这种情况下诱发一些wait
。元素存在于DOM中,但不可单击。
在这种情况下ExplicitWait
,请为元素添加一些可单击的元素。
WebDriverWait wait2 = new WebDriverWait(driver, 10);wait2.until(ExpectedConditions.elementToBeClickable(By.id("id1")));
- 元素存在但具有临时覆盖。
在这种情况下,ExplicitWait
使用ExpectedConditions
设置invisibilityOfElementLocated
为会使叠加层不可见。
WebDriverWait wait3 = new WebDriverWait(driver, 10);wait3.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath("ele_to_inv")));
- 存在元素,但具有永久覆盖。
用于JavascriptExecutor直接在元素上发送点击。
WebElement ele = driver.findElement(By.xpath("element_xpath"));JavascriptExecutor executor = (JavascriptExecutor)driver;executor.executeScript("arguments[0].click();", ele);
c# – Selenium Wait不等待Element可点击
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?
我已经看到有关此错误的其他问题,但我的情况是在我的程序中,另一个元素应该收到点击。详细说明: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更改才会生效
我在屏幕下方,该屏幕显示了用户点previous/last
和current
月份的历史记录。将point有2个指标,它们是Text1
和Text2
。
我的屏幕如何工作:
- 默认数据将显示current月份。
- 如果我点击last month按钮,它将更改UI以显示上个月的数据。
- 如果我点击Show/Hide Text 1,首先它将隐藏的所有外观Text1。如果我再次轻按,则所有内容Text1都会再次出现。
- 对于Show/Hide Text2相同点(3)。
问题 :
如果我点击show/hide
按钮Text1
或Text2
,则只有在我点击last month
或current month
按钮(显示/隐藏Text1
或Text2
的元素)后才会生效。所以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 – 伪元素不可点击
代码在这里:http://cdpn.io/vpjCg
要查看问题,请将光标滚动到平铺链接上,然后滚动到右下角的字符上.
是否有CSS属性或其他解决方案将:after元素设置为鼠标光标不可见,以便整个区域可单击?
解决方法
编辑
除了我的回答之外,您可以使用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 – 伪元素不可点击等更多相关知识的信息可以在本站进行查询。
本文标签: